#pragma once
#ifndef AbstractProgressProcedure_h__
#define AbstractProgressProcedure_h__

#include "AbstractProcedure.h"
#include <QObject>
#include "Network/Connection.h"
#include "Network/Manager.h"

#include "tccore_global.h"

namespace TC
{
    namespace Request
    {
        class TCCORE_EXPORT AbstractProgressProcedure : public AbstractProcedure
        {
            Q_OBJECT
            Q_PROPERTY(double progress READ progress NOTIFY progressChanged)
        public:
            AbstractProgressProcedure(QObject *parent = nullptr);
            virtual ~AbstractProgressProcedure();
        public:
            double progress();
        signals:
            void progressChanged();
        protected:
            void setProgress(double newVal);
        private:
            double _progress = 0;
        };

    }
}
#endif // AbstractProgressProcedure_h__